Software packages, such as complex software systems, provide a wide variety of functionality for use by their customers. Sometimes, a software package may provide all of the functionality that a user needs to accomplish a specific task. However, in the case of large or complex software systems, such as enterprise resource planning (ERP) systems, the customer often needs to customize the software system to meet the customer's needs.
In order to customize a large or complex software system, a user may have to create a new extension that operates independently of the software system. The new extension may include custom programming related to custom user interfaces, custom data access procedures, custom data processing routines, and other types of custom programming. The new extension may be difficult to integrate into the software system. For example, custom interface programming may be required to transfer data between the new extension and the software system.
While some large or complex software systems may provide facilities for creating new extensions within the software system, custom programming may still be required to integrate the new extensions into the software system. In addition, the software system may not provide the ability to extend existing functions of the software system.
Therefore, there exists ample opportunity for improvement in technologies related to extending functionality of software systems.